<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="utf-8">
<!-- applicationdevelopers.qdoc -->
  <title>QML Applications | Qt 5.14</title>
  <link rel="stylesheet" type="text/css" href="style/offline-simple.css" />
  <script type="text/javascript">
    document.getElementsByTagName("link").item(0).setAttribute("href", "style/offline.css");
    // loading style sheet breaks anchors that were jumped to before
    // so force jumping to anchor again
    setTimeout(function() {
        var anchor = location.hash;
        // need to jump to different anchor first (e.g. none)
        location.hash = "#";
        setTimeout(function() {
            location.hash = anchor;
        }, 0);
    }, 0);
  </script>
</head>
<body>
<div class="header" id="qtdocheader">
  <div class="main">
    <div class="main-rounded">
      <div class="navigationbar">
        <table><tr>
<td ><a href="index.html">Qt 5.14</a></td><td >QML Applications</td></tr></table><table class="buildversion"><tr>
<td id="buildversion" width="100%" align="right">Qt 5.14.2 Reference Documentation</td>
        </tr></table>
      </div>
    </div>
<div class="content">
<div class="line">
<div class="content mainContent">
<div class="sidebar">
<div class="toc">
<h3><a name="toc">Contents</a></h3>
<ul>
<li class="level2"><a href="#what-is-qml">What is QML?</a></li>
<li class="level2"><a href="#what-is-qt-quick">What is Qt Quick?</a></li>
<li class="level1"><a href="#qml-user-interfaces">QML User Interfaces</a></li>
<li class="level2"><a href="#buttons-menus-and-other-controls">Buttons, Menus, and other Controls</a></li>
<li class="level2"><a href="#special-effects">Special Effects</a></li>
<li class="level2"><a href="#viewing-web-content-in-qml-applications">Viewing Web Content in QML Applications</a></li>
<li class="level2"><a href="#sensors-gestures-and-touch-interfaces">Sensors, Gestures, and Touch Interfaces</a></li>
<li class="level1"><a href="#multimedia-content">Multimedia Content</a></li>
<li class="level1"><a href="#mobile-devices">Mobile Devices</a></li>
<li class="level1"><a href="#code-samples-and-demos">Code Samples and Demos</a></li>
<li class="level1"><a href="#advanced-application-development-topics">Advanced Application Development Topics</a></li>
<li class="level1"><a href="#other-qml-modules">Other QML Modules</a></li>
<li class="level1"><a href="#related-topics">Related Topics</a></li>
</ul>
</div>
<div class="sidebar-content" id="sidebar-content"></div></div>
<h1 class="title">QML Applications</h1>
<span class="subtitle"></span>
<!-- $$$qmlapplications.html-description -->
<div class="descr"> <a name="details"></a>
<p>QML is a declarative language that allows user interfaces to be described in terms of their visual components and how they interact and relate with one another. It is a highly readable language that was designed to enable components to be interconnected in a dynamic manner, and it allows components to be easily reused and customized within a user interface. Using the <code>QtQuick</code> module, designers and developers can easily build fluid animated user interfaces in QML, and have the option of connecting these user interfaces to any back-end C++ libraries.</p>
<a name="what-is-qml"></a>
<h3 id="what-is-qml">What is QML?</h3>
<p>QML is a user interface specification and programming language. It allows developers and designers alike to create highly performant, fluidly animated and visually appealing applications. QML offers a highly readable, declarative, JSON-like syntax with support for imperative JavaScript expressions combined with dynamic property bindings.</p>
<p>The QML language and engine infrastructure is provided by the <a href="../qtqml/qtqml-index.html">Qt QML</a> module. For in-depth information about the QML language, please see the <a href="../qtqml/qtqml-index.html">Qt QML</a> module documentation.</p>
<p>The following pages contain more information about QML:</p>
<ul>
<li><a href="qmlfirststeps.html">First Steps with QML</a> - begin using QML with these examples</li>
<li><a href="http://doc.qt.io/qtcreator/quick-projects.html">Creating Qt Quick Projects in Qt Creator</a></li>
<li><a href="../qtqml/qmlreference.html">The QML Reference</a> - reference about the QML constructs and features</li>
<li><a href="qml-codingconventions.html">QML Coding Conventions</a></li>
<li><a href="qml-glossary.html">Glossary of QML Terms</a></li>
</ul>
<a name="what-is-qt-quick"></a>
<h3 id="what-is-qt-quick">What is Qt Quick?</h3>
<p>Qt Quick is the standard library of types and functionality for QML. It includes visual types, interactive types, animations, models and views, particle effects and shader effects. A QML application developer can get access to all of that functionality with a single import statement.</p>
<p>The <code>QtQuick</code> QML library is provided by the <a href="../qtquick/qtquick-index.html">Qt Quick</a> module. For in-depth information about the various QML types and other functionality provided by Qt Quick, please see the <a href="../qtquick/qtquick-index.html">Qt Quick</a> module documentation.</p>
<a name="qml-user-interfaces"></a>
<h2 id="qml-user-interfaces">QML User Interfaces</h2>
<p>For creating or customizing graphical user interfaces, Qt Quick adds visual types, animation types, and other QML types in addition to the standard QML types from Qt QML. <a href="http://doc.qt.io/qtcreator/creator-using-qt-quick-designer.html">Qt Quick Designer</a> is integrated within Qt Creator and supports <code>QtQuick 2</code> from Qt Creator version 2.7 and onwards.</p>
<ul>
<li><a href="qtquick-usecase-visual.html">Visual types in QML</a></li>
<li><a href="qtquick-usecase-userinput.html">Responding to User Input in QML</a></li>
<li><a href="qtquick-usecase-animations.html">Animations in QML</a></li>
<li><a href="qtquick-usecase-text.html">Displaying Text in QML</a></li>
<li><a href="qtquick-usecase-layouts.html">Layouts in QML</a></li>
<li><a href="qtquick-usecase-styling.html">Style and Theme Support</a></li>
<li><a href="qtquick-usecase-integratingjs.html">Integrating JavaScript in QML</a></li>
<li><a href="scalability.html">Scalability</a></li>
</ul>
<a name="buttons-menus-and-other-controls"></a>
<h3 id="buttons-menus-and-other-controls">Buttons, Menus, and other Controls</h3>
<p>For a set of basic UI controls, the <a href="../qtquickcontrols/qtquickcontrols-index.html">Qt Quick Controls</a> module implements several controls such as buttons, menus, and views. These controls come with several built-in styles that can be used, and also support the creation of custom styles.</p>
<ul>
<li><a href="../qtquickcontrols/qtquickcontrols2-guidelines.html">Qt Quick Controls Guidelines</a></li>
<li><a href="../qtquickcontrols/qtquicktemplates2-index.html">Qt Quick Templates 2</a></li>
</ul>
<a name="special-effects"></a>
<h3 id="special-effects">Special Effects</h3>
<p>Several Qt modules provide types for creating special effects in applications. Their respective pages contain more information about specific uses.</p>
<ul>
<li><a href="../qtquick/qtquick-effects-particles.html">Particle Effects</a></li>
<li><a href="../qtgraphicaleffects/graphicaleffects.html">Graphical Effects</a> - for creating image composition effects.</li>
</ul>
<a name="viewing-web-content-in-qml-applications"></a>
<h3 id="viewing-web-content-in-qml-applications">Viewing Web Content in QML Applications</h3>
<p>The QML types, <a href="../qtwebengine/qml-qtwebengine-webengineview.html">WebEngineView</a> and <a href="../qtwebview/qml-qtwebview-webview.html">WebView</a>, render and display dynamic web content. The only difference between the two is that the latter uses a native web view if available. Both these types can load a URL or an HTML string. To read more about them and view code samples, see <a href="../qtwebengine/qtwebengine-index.html">Qt WebEngine</a> and <a href="../qtwebview/qtwebview-index.html">Qt WebView</a>.</p>
<a name="sensors-gestures-and-touch-interfaces"></a>
<h3 id="sensors-gestures-and-touch-interfaces">Sensors, Gestures, and Touch Interfaces</h3>
<p>The <a href="../qtsensors/qtsensors-index.html">Qt Sensors</a> module allows applications to read information from sensors such as accelerometers and tilt sensors. There is a common QML API for different platforms and can be extended in C++.</p>
<ul>
<li><a href="../qtsensors/qtsensors-qmlmodule.html">Qt Sensors QML Types</a></li>
<li><a href="../qtsensors/qtsensors-examples.html">Qt Sensors Examples</a></li>
<li><a href="../qtsensors/compatmap.html">Compatibility Map</a> - lists support level for different mobile platforms</li>
</ul>
<a name="multimedia-content"></a>
<h2 id="multimedia-content">Multimedia Content</h2>
<p>The <a href="../qtmultimedia/qtmultimedia-index.html">Qt Multimedia</a> module enables applications to handle various media content with a convenient set of QML types. These QML types can be extended in C++.</p>
<ul>
<li><a href="qt5-intro.html#multimedia">Multimedia</a><ul>
<li><a href="../qtmultimedia/audiooverview.html">Audio Overview</a></li>
<li><a href="../qtmultimedia/videooverview.html">Video Overview</a></li>
<li><a href="../qtmultimedia/cameraoverview.html">Camera Overview</a></li>
<li><a href="../qtmultimedia/radiooverview.html">Radio Overview</a></li>
<li><a href="../qtmultimedia/qtaudioengine-qmlmodule.html">Qt Audio Engine</a> - for 3D positional audio playback and content management.</li>
</ul>
</li>
</ul>
<a name="mobile-devices"></a>
<h2 id="mobile-devices">Mobile Devices</h2>
<p>Several Qt modules provide QML APIs for networked and mobile devices. The QML types provide access to the Bluetooth, Near-Field Communications (NFC), and GPS-enabled devices.</p>
<ul>
<li><a href="../qtpositioning/qtpositioning-index.html">Qt Positioning</a></li>
<li><a href="../qtlocation/qtlocation-index.html">Qt Location</a></li>
<li><a href="../qtbluetooth/qtbluetooth-index.html">Qt Bluetooth</a></li>
<li><a href="../qtnfc/qtnfc-index.html">Qt NFC</a></li>
</ul>
<p>For more information, visit the <a href="topics-network-connectivity.html">Networking and Connectivity</a> and <a href="mobiledevelopment.html">Mobile APIs</a> pages.</p>
<a name="code-samples-and-demos"></a>
<h2 id="code-samples-and-demos">Code Samples and Demos</h2>
<p>To learn more about uses of QML code, there are several code samples which show how QML types are used. In addition, there are several demos which show how QML code is used in applications.</p>
<ul>
<li><a href="qtdoc-tutorials-alarms-example.html">Getting Started Programming with Qt Quick</a> - a tutorial showing the creation of a simple QML text editor.</li>
<li><a href="../qtquick/qtquick-codesamples.html">Qt Quick Examples and Tutorials</a></li>
</ul>
<a name="advanced-application-development-topics"></a>
<h2 id="advanced-application-development-topics">Advanced Application Development Topics</h2>
<ul>
<li><a href="../qtqml/qtqml-cppintegration-topic.html">Integrating QML and C++</a></li>
<li><a href="qtquick-deployment.html">Deploying QML Applications</a></li>
<li><a href="../qtquick/qtquick-bestpractices.html">Best Practices for QML and Qt Quick</a></li>
<li><a href="qtquick-performance.html">Performance Considerations and Suggestions</a></li>
<li><a href="qtquick-internationalization.html">Internationalization and Localization</a></li>
<li>Testing and Debugging<ul>
<li><a href="qtquick-qmlscene.html">Prototyping with qmlscene</a></li>
<li><a href="qtquick-debugging.html">Debugging QML Applications</a></li>
<li><a href="../qtqmltest/qtquicktest-index.html">Qt Quick Test: QML Unit Testing Framework</a></li>
</ul>
</li>
</ul>
<a name="other-qml-modules"></a>
<h2 id="other-qml-modules">Other QML Modules</h2>
<p>Qt Quick only provides basic visual types and much of Qt's functionality is exposed to QML through other modules. If you require the functionality of those modules, you should browse their QML documentation.</p>
<p>The <a href="modules-qml.html">All QML APIs by Module</a> contains a list of all QML modules in Qt 5.</p>
<a name="related-topics"></a>
<h2 id="related-topics">Related Topics</h2>
<ul>
<li><a href="qtquick-porting-qt5.html">Porting QML Applications to Qt 5</a></li>
</ul>
</div>
<!-- @@@qmlapplications.html -->
        </div>
       </div>
   </div>
   </div>
</div>
<div class="footer">
   <p>
   <acronym title="Copyright">&copy;</acronym> 2020 The Qt Company Ltd.
   Documentation contributions included herein are the copyrights of
   their respective owners.<br/>    The documentation provided herein is licensed under the terms of the    <a href="http://www.gnu.org/licenses/fdl.html">GNU Free Documentation    License version 1.3</a> as published by the Free Software Foundation.<br/>    Qt and respective logos are trademarks of The Qt Company Ltd.     in Finland and/or other countries worldwide. All other trademarks are property
   of their respective owners. </p>
</div>
</body>
</html>
